package com.itheima.fanxing;

import java.lang.reflect.Array;
import java.util.ArrayList;

public class Demo04 {

    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>();
        ArrayList<Integer> list2 = new ArrayList<>();
        ArrayList<Number> list3 = new ArrayList<>();
        ArrayList<Object> list4 = new ArrayList<>();
          /*   printArrayList(list1);
        printArrayList(list2);
        printArrayList(list3);*/
   /*       method1(list1);
          method1(list2);
          method1(list3);*/
/*   method2(list1);
   method2(list2);*/
   method2(list3);
   method2(list4);

    }

    //? 就是不确定的类型  ? 接下来使用的类型
    public static  void printArrayList(ArrayList<?> list){
        System.out.println(list);

    }
    //? 想要的类型  Number 是他爹
    //想要的类型 是Number 的儿子  规定了上限
    public static  void method1(ArrayList<? extends Number> list){
        System.out.println(list);

    }

    //? 想要的类型  Number 是?的儿子
    // 想要的类型 得是 Number的爹
    public static  void method2(ArrayList<? super Number> list){
        System.out.println(list);

    }
}
